Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Променевий пошук

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2007
Тип роботи:
Звіт про виконання лабораторної роботи
Предмет:
Програмування
Група:
КІ-24

Частина тексту файла

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра ЕОМ Звіт Про виконання лабораторної роботи № 4 з програмування Тема: Променевий пошук Завдання: 58. Усередині піраміди Хеопса є N кімнат, в яких встановлено M пристроїв, кожний з яких складається з двох модулів, що розташовуються в різних кімнатах, і призначені для швидкого переміщення між парою кімнат, у яких встановлені ці модулі. Переміщення відбувається за 2 умовних одиниць часу. У початковий момент часу модулі всіх пристроїв переходять у "підготовчий режим". Кожний з модулів має деякий свій цілочисельний період, під час якого він знаходиться в "підготовчому режимі". Після закінчення цього часу модуль миттєво "спрацьовує", після чого знову переходить у "підготовчий режим". Пристроєм можна скористатися тільки в той момент, коли одночасно "спрацьовують" обидва його модуля. Індіана Джонс зумів проникнути в гробницю фараона. Обстеживши її, він включив пристрої і зібрався йти, але в цей момент прокинувся охоронець гробниці. Тепер Джонсу необхідно якнайшвидше потрапити в кімнату N, у якій знаходиться вихід з піраміди. При цьому з кімнати в кімнату він може попадати тільки за допомогою пристроїв, тому що охоронець, що прокинувся, закрив всі двері у кімнатах піраміди. Написати програму, що одержує на вході опис розташування пристроїв і їхніх характеристик (періоди часу, через які "спрацьовують" ці модулі), а видає значення оптимального часу і послідовність пристроїв, якими треба скористатися, щоб потрапити з кімнати 1 у кімнату N за цей час. Програма #include <stdio.h> #include <string.h> #include <conio.h> #include <stdlib.h> #include <windows.h> /****Функція виведення кирилиці****/ void cyrillic(char* text) { char* x; int l,i,size=sizeof(text); l=strlen(text); x=(char*)malloc(size); for(i=0;i<l;i++) { x[i]=text[i]; if(x[i]=='і')x[i]='i'; if(x[i]=='І')x[i]='I'; } x[i]='\0'; CharToOem(x,x); printf(x); } void main() { int n,m,i=0,j=0,k,l; int* x; cyrillic("\n\tВведіть кількість кімнат з пристроями\n"); scanf("%d",&n); x=malloc((n*5)*sizeof(int)); for (i=0;i<n;i++) { x[i]=rand()%50; x[i+n]=rand()%50; x[i+2*n]=rand()%8+3; while(j<n) { j++; if(x[i]==x[j] && x[i+n]==x[j+n] && i!=j) { x[i]=rand()%50; j=0; } } } x[1+4*n]=1;//місце знаходження Індіана Джонс cyrillic("\n\tХарактеристики пристроїв в кімнатах\n"); printf("\n%d,%d -> %d",x[1],x[1+n],x[1+2*n]); for(i=1;x[0+4*n]!=1;i++) { for(j=0;j<n;j++) { if(i==1) { x[j+3*n]=0; } x[j+3*n]++; if(x[j+3*n]==x[j+2*n]) { x[j+3*n]=-2; } } for(j=0;j<n;j++) { if(x[j+3*n]==-2 && x[j+4*n]==1) { k=j+3*n; for(m=0;m<n;m++) { if(x[m+3*n]==-2 && m+3*n!=k) { x[m+4*n]=1;x[j+4*n]=0;l=1; printf("\n%d,%d -> %d",x[m],x[m+n],x[m+2*n]); break; } } } if(l==1) { l=0; break; } } } cyrillic("\n\tЧас за який вибереться Індіана Джонс \n"); printf("\n%d\n",i);l=0; cyrillic("\n\tКімнати в яких є пристрої позначні 1\n"); for(i=0;i<50;i++) { for(j=0;j<50;j++) { for(m=0;m<n;m++) { if(x[m]==i && x[m+n]==j) { printf("1"); l=1; } } if(l==0) printf("0"); l=0; } printf("\n"); } } Результат:  Висновок: На дані лабораторні роботі ми навчилися використовувати певні типи даних до різних за типом задач.
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини